[Reliability] Add fallbacks for known Product decoding errors #9846
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Closes: #9837
Description
This PR increases the app's resilience when
Productfields have unexpected types:String.String.String.String.It uses failsafe decoding to handle those alternative types, and adds to the unit test for parsing alternative types in a
Product. (These are known decoding errors that users have experienced.)Testing instructions
We don't know the exact plugins that can cause this behavior, but you can test using a tool like Charles Proxy or Proxyman to intercept and modify the response:
/wc/v3/productsendpoint."sku": 123or see theproduct-alternative-types.jsonmock for an example)."weight": 213)."dimensions": { "length": 12, "width": 33, "height": 54 })."downloads": [{ "id" : 12345, "name" : "Song #1", "file" : "https://example.com/woo-single-1.ogg" }]).Screenshots
RELEASE-NOTES.txtif necessary.